package com.hlkj.pay.infrastructure.model.payment;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableName;
import com.hlkj.framework.mybatis.core.dataobject.BaseDO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
* 商户代付
* @TableName t_merchant_payment
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_merchant_payment")
public class MerchantPaymentDO extends BaseDO {

    /**
    * sn
    */
    @Schema(description ="sn")
    private String sn;
    @Schema(description = "子通道编码")
    private String mchChannelCode;
    /**
     * 服务商编码
     */
    @Schema(description ="服务商编码")
    private String providerCode;
    /**
     * 通道编码
     */
    @Schema(description ="通道编码")
    private String channelCode;
    /**
     * 通道编码
     */
    @Schema(description ="appId")
    private String appId;
    /**
    * 代付id
    */
    @Schema(description ="代付id")
    private String paymentId;
    /**
     *  @see com.hlkj.pay.enums.TransferOrderEnums.TRANSFER_ORDER_STATUS
    * 状态 0 待审核 1 审核通过 2 执行中 3 执行完成 4 执行失败
    */
    @Schema(description ="状态 0 待审核 1 审核通过 2 执行中 3 执行完成 4 执行失败 5 审核拒绝，6 退票")
    private Integer status;
    /**
    * 备注
    */
    @Schema(description ="备注")
    private String remark;
    /**
    * 代付金额
    */
    @Schema(description ="代付金额")
    private BigDecimal payAmount;
    /**
    * 代付数量
    */
    @Schema(description ="代付数量")
    private Integer payCount;
    /**
     * 凭证地址
     */
    @Schema(description = "凭证地址")
    private String proofPath;
    /**
     * @see com.hlkj.pay.enums.TransferOrderEnums.TRANSFER_ORDER_STATUS
     * 支付方式 1- 支付宝账户； 2- 微信零钱；3-银行卡 4-渠道内部户
     */
    @Schema(description = "下发方式 1- 支付宝账户； 2- 微信零钱；3-银行卡 4-渠道内部户")
    private Integer entryType;
    @Schema(description = "收款方类型，1=个人，2=企业，入账方式为3或4必传，其它非必传")
    private Integer payeeType;
    /**
     * 客户端IP
     */
    @Schema(description = "客户端IP")
    private String clientIp;
    /**
     * 特定支付方式额外参数
     */
    @Schema(description = "特定支付方式额外参数")
    private String extra;

    /**
     * 异步通知地址
     */
    @Schema(description = "异步通知地址")
    private String notifyUrl;
    /**
     * 向下游回调状态, 0-未发送, 1-已发送'
     */
    @Schema(description = "向下游回调状态, 0-未发送,  1-已发送'")
    private Integer notifyState;
    /**
     * 签名方式 RSA2,MD5
     */
    @Schema(description = "签名方式 RSA2,MD5")
    private String signType;

    /**
     * 备注
     */
    @Schema(description ="类型 1 充值 0 代付")
    private Integer paymentType;
}
